﻿namespace LaserMark.Models
{
    public class OPTContent
    {
        public OPTHeader? Header { get; set; } = new();

        public OPTSignature? Signature { get; set; } = new();

        public List<OPTPattern>? Patterns { get; set; } = new List<OPTPattern>();

        public List<OPTCuttings>? Cuttingses { get; set; } = new List<OPTCuttings>();

        public List<Info>? Infos { get; set; } = new List<Info>();
    }

    public class OPTHeader
    {
        public string? Key { get; set; }

        public string? Value { get; set; }
    }

    public class OPTSignature
    {
        public string? Creator { get; set; }
    }

    public class OPTPattern
    {
        public string? GlassID { get; set; }

        public string? GlassDescription { get; set; }

        public double GlassThickness { get; set; }

        public int GlassStructured { get; set; }

        public int GlassCoated { get; set; }

        public int Pieces { get; set; }

        public double Width { get; set; }

        public double Height { get; set; }

        public double TrimLeft { get; set; }

        public double TrimBottom { get; set; }

        public string? LoaderRack { get; set; }
    }

    public class OPTCuttings
    {
        public List<Point>? Points { get; set; } = new();
    }

    public class Info
    {
        public int ID { get; set; }

        public double SheetWidth { get; set; }

        public double SheetHeight { get; set; }
    }
}
